package net.freestu.sola.web.parser.Parse;

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import net.freestu.sola.web.parser.Parse.Globle.GlobleVarOfParseSystem;

/**
 * 该类获取Update Folder路径,同时能为索引系统提供三种Page迭代器
 * @author 秋刀鱼的滋味
 * 这个函数基本测试成功！！！
 */
public class UpdateFolderManager {
    
	
	private String updatefolderpath;
	
	public UpdateFolderManager(String updatefolderpath){
		
		this.updatefolderpath=updatefolderpath;
	}
	
	/**
	 * 路径在Work_Place\成都理工大学\Update Folder 下面找了.
	 * 返回装有File(addxml文件).
	 * mode 有三个参数：
	 * Add,delete,update
	 * @return
	 */
	public Iterator getIteratorOfXmlFile(String mode) {
		
		List al=new ArrayList();
		String path=updatefolderpath+File.separator+mode.toUpperCase();
		File addfiles=new File(path);
		File[] fs=addfiles.listFiles();
		for(File f:fs){
			al.add(f);
		}
		Iterator it=al.iterator();
		return it;
	}
	
	/**
	 * 读取xml文件,返回Page容器的Iterator
	 * @param xmlfile 文件
	 * @return
	 */
	public Iterator getIteratorWithXmlFile(File xmlfile){
		
		DataReader da = new DataReader(xmlfile);
		List list= (ArrayList) da.getPageList();
		return list.iterator();
	}

	public static void main(String[] args) {

	   String path=GlobleVarOfParseSystem.UPDATE_FOLDER;
	   UpdateFolderManager uf=new UpdateFolderManager(path);	 
	   Iterator addit=uf.getIteratorOfXmlFile("ADD");
	   
	   while(addit.hasNext()){
		   
		   File f=(File)addit.next();
		   Iterator xmlit=uf.getIteratorWithXmlFile(f);
		   while(xmlit.hasNext()){
			   
			   Page p=(Page)xmlit.next();
			   p.printPage();
		   }
	   }
	}
}